package araujoCoronelVillamayor.plantasVsZombies.domain

import java.io.Serializable

abstract class Criatura implements Serializable {
	//Tuve que agregar el "@Property" para que sea visible desde "JardinZenWindow"	
	@Property String nombre
	@Property int ataque
	@Property int defensa
	@Property AtaqueLog ataqueLogRegistro
	
	new(String nombreParametro, int ataqueParametro, int defensaParametro){
		nombre = nombreParametro
		ataque = ataqueParametro
		defensa = defensaParametro
	}
	
	def ataca(Criatura victima){
		victima.defensa = victima.defensa - this.poderAtaque
	}
	
//	def sosAtacado(Criatura unaCriatura){
//		this.restarVida(unaCriatura)
//	}
	
//	def void restarVida(Criatura unaCriatura){
//		defensa = defensa - unaCriatura.poderAtaque()
//		if (!this.tieneVida){
//
//			ataqueLogRegistro = new AtaqueLog()
//			ataqueLogRegistro.generarMuerteLog(this)
//			ataqueAppModel.ataqueLogColeccion.add(ataqueLogRegistro)
//			
//			ataqueLogRegistro = new AtaqueLog()
//			ataqueLogRegistro.generarGanadorLog(unaCriatura)
//			ataqueAppModel.ataqueLogColeccion.add(ataqueLogRegistro)
//		}
//	}
	
	def boolean tieneVida(){
		this.poderDefensa > 0
	}
	
	override toString(){
		nombre
	}
	
	def int poderAtaque()
	
	def int poderDefensa()
}